Implementing Software Transactional Memory, Correctly

نویسندگان

  • Liyang HU
  • Graham Hutton
چکیده

In recent years there has been much interest in the idea of concurrent programming using transactional memory, for example as provided in STM Haskell. While programmers are provided with a simple high-level model of transactions in terms of a stop-the-world semantics, the low-level implementation is rather more complex, involving subtle techniques that allow multiple transactions to execute concurrently. In this article, we take the first steps towards a formally verified implementation of transactional memory. In particular, we present a stripped-down, idealised concurrent language inspired by STM Haskell, and show how a low-level implementation of this language can be justified with respect to a high-level semantics, by means of a compiler and its correctness theorem, validated using QuickCheck and HPC.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Dynamic Instrumentation Approach to Software Transactional Memory

A Dynamic Instrumentation Approach to Software Transactional Memory Marek Olszewski Master of Applied Science Graduate Department of Electrical and Computer Engineering University of Toronto 2007 With the advent of chip-multiprocessors, we are faced with the challenge of parallelizing performance-critical software. Transactional memory has been proposed as a promising programming model, with so...

متن کامل

Designing a Distributed Software Transactional Memory System

Distributed systems are widely used in high performance computing for performing computationally extensive calculations. In programming terms, distributed systems have usually been exploited through the use of dedicated APIs such as OpenMP and MPI. With these programming models, synchronization is achieved using locks and barriers, and is complex to implement correctly. Transactional memory is ...

متن کامل

MUTS: Native Scala Constructs for Software Transactional Memory

In this paper we argue that the current approaches to implementing transactional memory in Scala, while very clean, adversely affect the programmability, readability and maintainability of transactional code. These problems occur out of a desire to avoid making modifications to the Scala compiler. As an alternative we introduce Manchester University Transactions for Scala (MUTS), which instead ...

متن کامل

Lightweight Software Transactions for Games

To realize the performance potential of multiple cores, software developers must architect their programs for concurrency. Unfortunately, for many applications, threads and locks are difficult to use efficiently and correctly. Thus, researchers have proposed transactional memory as a simpler alternative. To investigate if and how software transactional memory (STM) can help a programmer to para...

متن کامل

Testing Memory Consistency of Shared-memory Multiprocessors a Dissertation Submitted to the Department of Electrical Engineering and the Committee on Graduate Studies of Stanford University in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy

Shared-memory multiprocessors are becoming the dominant architecture for singlechip and multi-chip microprocessor based systems. Shared memory architectures are difficult to design because they must correctly implement the complexity of cache coherence and a memory consistency model. Memory consistency is a contract between hardware and software that specifies how memory behaves with respect to...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008